////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////@

Log.print('service module: kafenio');

Service.kafenio = {};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////@

Service.kafenio.neo = function(nodereq) {
	if (nodereq.isvoli())
	return;

	DB.connection().transaction(function(conn) {
		Service.kafenio.neo1(nodereq, conn);
	});
};

Service.kafenio.neo1 = function(nodereq, conn) {
	var query = "INSERT INTO `kafenio` (`onomasia`, `dimiourgos`, `idiotikotita`) VALUES ('', "
		+ nodereq.login.json() + ", 'ΠΡΙΒΕ')";
	conn.query(query, function(conn, res) {
		if (res.affectedRows == 1)
		return Service.kafenio.neo2(nodereq, conn, res.insertId);

		conn.rollback();
		nodereq.error('Απέτυχε η δημιουργία καφενείου');
	});
};

Service.kafenio.neo2 = function(nodereq, conn, kafenio) {
	var kinisi;

	conn.commit();
	nodereq.end();

	kinisi = new Kinisi('NK');
	kinisi.data.kafenio = {
		kodikos: kafenio,
		onomasia: kafenio,
		dimiourgos: nodereq.login,
		prive: true,
	};

	skiniko.
	skinikoKinisiProcess(kinisi).
	skinikoKinisiPush(kinisi);
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////@

Service.kafenio.epilogi = function(nodereq) {
	if (nodereq.isvoli())
	return;

	if (nodereq.denPerastike('kafenio', true))
	return;

	DB.connection().transaction(function(conn) {
		Service.kafenio.epilogi1(nodereq, conn);
	});
};

Service.kafenio.epilogi1 = function(nodereq, conn) {
	var query;

	query = 'UPDATE `sinedria` SET `kafenio` = ' + nodereq.urlGet('kafenio') +
		' WHERE `pektis` = ' + nodereq.loginGet().json();
	conn.query(query, function(conn, res) {
		if (res.affectedRows == 1)
		return Service.kafenio.epilogi2(nodereq, conn);

		conn.rollback();
		nodereq.error('Απέτυχε η επιλογή καφενείου');
	});
};

Service.kafenio.epilogi2 = function(nodereq, conn) {
	var kinisi;

	conn.commit();
	nodereq.end();

	kinisi = new Kinisi('EK');
	kinisi.data = {
		pektis: nodereq.loginGet(),
		kafenio: nodereq.urlGet('kafenio'),
	};

	skiniko.
	skinikoKinisiProcess(kinisi).
	skinikoKinisiPush(kinisi);
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////@

Service.kafenio.exodos = function(nodereq) {
	if (nodereq.isvoli())
	return;

	DB.connection().transaction(function(conn) {
		Service.kafenio.exodos1(nodereq, conn);
	});
};

Service.kafenio.exodos1 = function(nodereq, conn) {
	var query;

	query = 'UPDATE `sinedria` SET `kafenio` = NULL WHERE `pektis` = ' + nodereq.loginGet().json();
	conn.query(query, function(conn, res) {
		if (res.affectedRows == 1)
		return Service.kafenio.exodos2(nodereq, conn);

		conn.rollback();
		nodereq.error('Απέτυχε η αποχώρηση από το καφενείο');
	});
};

Service.kafenio.exodos2 = function(nodereq, conn) {
	var kinisi;

	conn.commit();
	nodereq.end();

	kinisi = new Kinisi('XK');
	kinisi.data = {
		pektis: nodereq.loginGet(),
	};

	skiniko.
	skinikoKinisiProcess(kinisi).
	skinikoKinisiPush(kinisi);
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////@
